The invention relates to bit stream multiplexing in digital communications networks, and more particularly to the multiplexing of an additional bit stream with a primary bit stream, where the primary bit stream is encoded into an x-bit/y-bit (xB/yB) encoded bit stream.
High-speed digital communications networks typically transmit digital data as a series of 1""s and 0""s. In order for the digital data to be deciphered at the speeds that are required in today""s networks, it is often desirable to transmit a digital data stream with a balanced number of 1""s and 0""s. A balanced number of 1""s and 0""s is desired in a digital data stream because a balanced number of 1""s and 0""s leads to an electronic signal with a balanced number of voltage transitions between a high voltage (typically representing a 1) and a low voltage (typically representing a 0). An electronic signal with a balanced number of voltage transitions is said to be direct current (DC) balanced. A DC balanced signal is important to prevent transformer core saturation and to ensure correct phase locked loop (PLL) operation when coupling a DC signal into an alternating current (AC) medium.
Ethernet is an example of a protocol that is widely used to accomplish digital communications. Some of the higher speed generations of Ethernet require DC balanced bit streams. In particular, one gigabit-per-second Ethernet (GbE) is a generation of Ethernet that requires a DC balanced bit stream. In order to achieve DC balance, GbE utilizes an 8-bit to 10-bit (8B/10B) encoding scheme that is defined by the IEEE in its 802.3 standard (Clause 36, Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) sublayer, type 1000BASE-X). Using the 8B/10B encoding scheme, there are 1,024 (210) 10B code-words available to represent 256 (28) 8B words. From the 1,024 available 10B code-words, two 10B code-words are selected to represent each 8B word. The 10B code-words that are selected to represent each 8B word are the 10B code-words that are balanced with respect to the number of 1""s and 0""s (that is, each 10B code-word has the same number of 1""s and 0""s) or the code-words that are nearly balanced with respect to the number of 1""s and 0""s (that is, each 10B code-word has six 1""s and four 0""s or four 1""s and six 0""s). The selected 10B code-words are then divided into two categories, one category that tends to exhibit a positive DC balance (i.e., those 10B code-words that tend to have more 1""s than 0""s) and another category that tends to exhibit negative DC balance (i.e., those 10B code-words that tend to have more 0""s than 1""s). The specific 10B code-words within the two categories of 10B code-words are identified in Clause 36 of the above-identified Ethernet standard.
Upon transmitting a series of 10B code-words across a GbE link, a tally is kept as to whether the pattern of codes is leaning towards too many 1""s (RD+ or positive disparity) or leaning towards too many 0""s (RDxe2x88x92 or negative disparity). The tally is referred to generally as the running disparity, or RD. The RD is used as the basis for determining from which category the next 10B code-word should be selected to represent each subsequent 8B word. For example, if the RD is positive, then a 10B code-word from the category that tends to exhibit more 0""s than 1""s is selected to represent the next 8B word in the bit stream and if the RD is negative, then a 10B code-word from the category that tends to exhibit more 1""s than 0""s is selected to represent the next 8B word in the bit stream. FIG. 1 is a table that depicts the code selection logic for an example data stream that is represented by a sequence of 8B words. With reference to FIG. 1, column A identifies the sequence numbers of 8B words, column B identifies 8B words of the primary bits stream, column C identifies the 10B code name for the respective 8B word, column D identifies the respective 10B code-words from the category of code-words that tends to exhibit positive DC balance, column E identifies the respective 10B code-words from the category of code-words that tends to exhibit negative DC balance, and column F identifies the code selection logic that is applied to selecting one of the 10B code-words in the two categories of code-words to represent the respective 8B word. As indicated in column F of FIG. 1, each of the 10B code-words in the bit stream is selected, from the two categories of code-words, to balance the RD of the bit stream. By manipulating the selection of 10B code-words between the two categories, the RD of the transmitted code-words can be tightly controlled, thereby ensuring a DC balanced signal.
Although 8B/10B encoding works well to ensure a DC balanced signal, one disadvantage to 8B/10B encoding is that it increases the actual rate at which bits must be transmitted in order to achieve a desired data transfer rate. For example, because 10 bits of coding must be transmitted for each 8 bits of data, bits must be transmitted at a line rate of 1.25 gigabits per second (Gbps) to achieve an effective data transmission rate of 1 Gbps. Utilizing this 8B/10B encoding scheme, the transmission efficiency of GbE is approximately 80% (1 Gbps/1.25 Gbps).
Another disadvantage to Ethernet is that Ethernet is an unsynchronized network protocol that transmits traffic in packet bursts. In leading edge digital communications networks, it is desirable to be able to carry digital voice and data over the same network. Transmitting traffic in bursts in an unsynchronized network is not naturally suited for constant bit rate traffic, such as digital voice traffic, that is sensitive to time delay and jitter.
In view of the stated shortcomings of xB/yB encoding schemes, and particularly 8B/10B encoding for GbE, what is needed is a technique that increases the efficiency of xB/yB encoding, that is well suited for constant bit rate traffic, and that is compatible with widely accepted xB/yB encoding standards, such as the GbE standard.
A technique for multiplexing an additional bit stream with a primary bit stream, where the primary bit stream is encoded into an xB/yB encoded bit stream, involves selecting yB code-words to convey bits of the additional bit stream. In an xB/yB encoding scheme, each xB word of the primary bit stream can be represented by one yB code-word from a corresponding group of yB code-words, with each group of yB code-words including at least one yB code-word that belongs to a category of yB code-words that tends to exhibit positive DC balance and at least one yB code-word that belongs to a category of yB code-words that tends to exhibit negative DC balance. In an embodiment, the yB code-words in one of the categories are used to represent 1""s and the yB code-words in the other category are used to represent 0""s. Bits from the additional bit stream are multiplexed with the primary bit stream by selecting yB code-words from one of the two categories to convey 1""s and by selecting yB code-words from the other category to convey 0""s. In an embodiment, when yB code-words are not being selected to convey bits of the additional bit stream, the yB code-words are selected to balance the RD of the encoded bit stream.
In an embodiment, the selection of yB code-words is alternated between multiplexing a bit of the additional bit with the primary bit stream and balancing the RD of the encoded bit stream. The additional bit stream is demultiplexed from the encoded bit stream by identifying the category of yB code-words to which a multiplexed yB code-word belongs. For example, yB code-words belonging to one category of the yB code-words represent 1""s (i.e., the category of yB code-words that tends to exhibit positive DC balance) and yB code-words belonging to the other category of the yB code-words represent 0""s (i.e., the category of yB code-words that tends to exhibit negative DC balance).
An advantage of the bit multiplexing technique is that additional bandwidth can be provided in an xB/yB encoded bit stream while the overall DC balance of the encoded bit stream is maintained. The additional bandwidth provided by the multiplexing technique does not steal bandwidth from the primary bit stream and as a result, the overall bandwidth efficiency of the xB/yB encoded bit stream is improved.